package 富婆梦.第一阶段.第八周Scoket.作业2;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

/**
 * @ProjectName: java-learning
 * @Package: 富婆梦.第一阶段.第八周Scoket.作业2
 * @ClassName: PrintJavaFile
 * @Author: hemengjin
 * @Description: 实现列出当前工程下所有.java文件
 * @Date:2021/9/23 14:20
 * @Version: 1.0
 */
public class PrintJavaFile {
    public static void main(String[] args) {
        try {
            ArrayList<File> list = new PrintJavaFile().getFiles();
            for (int i=0;i<list.size();i++){
                System.out.println("这是第"+(i+1)+"个Java文件");
                FileReader fileReader = new FileReader(list.get(i));
                BufferedReader reader = new BufferedReader(fileReader);
                String s;
                while ((s = reader.readLine()) != null) {
                    System.out.println(s);
                }
                System.out.println("--------------------------------------------------");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    //拿到该工程下所有 .java 结尾的文件
    public ArrayList<File> getFiles() {
        ArrayList<File> javaFile = new ArrayList<>();
        //获取当前类所在的工程路径
        //File file = new File(this.getClass().getResource("/").getPath());
        File fi = new File("");
        String path = fi.getAbsolutePath();
        File file = new File(path);
        //System.out.println(file);

        //判断是否是文件夹，如果是文件夹则转换成文件List
        if (file.isDirectory()) {
            File[] listFiles = file.listFiles();
            for (File f : listFiles) {
                if (f.getName().endsWith(".java")) {
                    //System.out.println(f.getName());
                    javaFile.add(f);
                }
            }
        }


        return javaFile;
    }
}
